Processes executed in a computer system may include execution context schedulers that schedule tasks of processes for execution in the computer system. A scheduler may create execution contexts (e.g., threads, fibers, or child processes) in order to execute tasks. During execution, the scheduler maintains control over these execution contexts and maintains control of the processing resources allocated to the scheduler.
The scheduler may allow the process to express parallelism so that different parts of the process may be executed concurrently. In doing so, however, the scheduler may limit the ability of the process to control the execution. For example, the scheduler may make it difficult for the process to cancel concurrently executing parts of the process. In addition, the scheduler may place restrictions on which execution contexts can execute or control concurrently executing parts of the process.